Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- API Writing



  Building the new AJAX mail UI part 2: Better than templates, building highly dynamic web pages

This is part 2 of a series of technical posts documenting some of the interesting work and technologies we’ve used to power the new interface (see also part 1, Instant notifications of new emails via eventsource/server-sent events). Regular users can skip these posts, but we hope technical users find them interesting. As dynamic websites constructed entirely on the client side become de rigueur, there are a number of templating languages battling it out to become the One True Wayâ„...

   Web design,Dynamic,Ajax,UI     2012-02-21 05:32:29

  Don't Overload #nil?

There’s a popular post on Hacker News about writing confident code by, among other things, overloading Object#nil? and returning “null objects” instead of nil itself.DO NOT DO THIS.In Ruby, all objects (except nil itself) coerce to the boolean value true. Your object will be nil and true at the same time. Bad things will happen. Your coworkers will cry. Sad people from around the world will ask bewildering questions on your mailing list.Here’s what happen...

   Ruby,#nil,Overload,Object     2011-11-10 10:50:22

  Getting the most out of your pixels - adapting to view state changes

In Windows 8, your apps run on a variety of screen sizes and under various view states. A user might have your app snapped to the side of a 25-inch desktop monitor, or fill the whole screen of a 10-inch widescreen tablet. In each case, you want your app to take full advantage of the available space. In this post, I show you how you can track the current size and view state of your app in code, and give you tips on how to write your app in the Windows 8 Consumer Preview to handle screen si...

   Windos 8,Metro,Resolution,Style     2012-04-23 06:13:02

  A brief guide to tech internships

Planning to be an Intern in the Bay Area during Summer 2012? Make sure to read an Intern's Guide to the Bay Area, and join the 2012 Facebook group.  (via this guy, via this guy) Joel Spolsky, from the Joel On Software blog and StackOverflow, wrote an article with Advice for Computer Science College Students back in '05. According to Joel,  No matter what you do, get a good summer internship. As such: here’s everything you ever wanted to know about tech inter...

   Internship,Advice,CS student     2012-02-01 04:48:31

  What matters in life (and what doesn’t)

I’m probably too young to be writing on this topic but observing countless souls distressed by daily life made me think hard on what is that really matters in life. Undoubtedly, there are happy and sad phases and that’s part-and-parcel of life. But what I’m really bothered about is general, daily bitching about how miserable one’s life has become. You find people complaining about work, commute, relationships, other people’s attitudes & personalit...

   Life,Matater,Relationship,Experience,Material possession,Ego     2011-10-24 11:57:27

  Avoiding and exploiting JavaScript's warts

One's sentiment toward JavaScript flips between elegance and disgust without transiting intermediate states. The key to seeing JavaScript as elegant is understanding its warts, and knowing how to avoid, work around or even exploit them. I adopted this avoid/fix/exploit approach after reading Doug Crockford's JavaScript: The Good Parts: Doug has a slightly different and more elaborate take on the bad parts and awful parts, so I'm sharing my perspective on the four issues that ha...

   JavaScript,warts,Exploit,with,variable,this     2012-02-15 05:51:21

  JavaScript efficiency catch up

JavaScript is a very flexible language, we can write JavaScript code freely with various styles, different kinds of codes will have different execution efficiency. Here we summarize some tips we get from our development. Efficiency of JavaScript itself JavaScript has execution context chain, closures, prototype inheritance, eval etc. It brings us some magic features, but it also introduces the performance issue, if we don't use them properly, it will affect the codes execution efficiency. 1. Glo...

   JavaScript,efficiency,event delegation,eval     2013-04-02 04:08:46

   Python – parallelizing CPU-bound tasks with multiprocessing

In a previous post on Python threads, I briefly mentioned that threads are unsuitable for CPU-bound tasks, and multiprocessing should be used instead. Here I want to demonstrate this with benchmark numbers, also showing that creating multiple processes in Python is just as simple as creating multiple threads. First, let’s pick a simple computation to use for the benchmarking. I don’t want it to be completely artificial, so I’ll use a dumbed-down version of factorization...

   Python,Multitasking,Multiprocessing,CPU bound     2012-01-17 11:38:22

  What else is new in C# 5?

The big new feature in C# 5 is asynchronous programming support, which I wrote about last week. However, the C# folks have also slipped in a couple of smaller features and I thought I’d round things out by mentioning those. Method caller information There’s a complete style guide to be written on Writing Enterprisey Code, but one of my favourite “enterprisey” tells, after the use of Visual Basic, is obsessively logging every function you pass through: Function Ad...

   C# 5,New feature,Analysis     2012-03-20 07:45:11

  HP To Apple: You Win.

As I write this, I’m sitting in a cafe. Around me, there are five people on laptops — four of them are MacBooks. Four other people are using tablets — all four are iPads. Welcome to the Post-PC world. That phrase was one of the first things that jumped to my mind today when I heard the news that HP was not only killing off their TouchPad and Pre webOS-based products, but also trying to spin-off their PC business. The largest PC busine...

   HP,Apple,Palm,Competition,webOs     2011-08-19 07:38:41